package com.smedi.ismedi.authoritymanagement.core.domain.repository;


import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.smedi.ismedi.authoritymanagement.core.domain.aggregatemodel.Element;
import com.smedi.ismedi.authoritymanagement.core.domain.dto.ElementQuery;

import java.util.List;

/**
 * @author Cookie
 * @date 2022/07/13
 */
public interface ElementRepository {

    /**
     * 保存 元素
     *
     * @param element 元素
     * @return Element
     */
    Element saveElement(Element element);

    /**
     * 删除 元素
     *
     * @param elementQuery 元素
     */
    void deleteElement(ElementQuery elementQuery);

    /**
     * 设备 查询 单一
     *
     * @param elementQuery 元素查询
     * @return Element
     */
    Element getElementOne(ElementQuery elementQuery);

    /**
     * 设备 查询 列表
     *
     * @param elementQuery 元素查询
     * @return List<Element>
     */
    List<Element> getElementList(ElementQuery elementQuery);

    /**
     * 设备 查询 分页
     *
     * @param elementQuery 元素查询
     * @return Page<Element>
     */
    Page<Element> getElementPage(ElementQuery elementQuery);
}
